package com.example.zqr.service;
import com.example.zqr.dto.ReviewDto;
import com.example.zqr.pojo.Review;

import java.util.List;
public interface ReviewService {
    /**
     * 列出所有的评论实体。
     *
     * @return 返回一个包含所有评论实体的列表。
     */
    List<Review> listAll();

    /**
     * 列出所有的评论数据传输对象（DTO）。
     *
     * @return 返回一个包含所有评论DTO的列表。
     */
    List<ReviewDto> listAllDto();

    /**
     * 创建一个新的评论实体。
     *
     * @param review 要创建的评论实体。
     * @return 返回创建操作影响的行数。
     */
    int create(Review review);

    /**
     * 更新一个现有的评论实体。
     *
     * @param revid  要更新的评论的唯一标识符。
     * @param review 包含更新信息的评论实体。
     * @return 返回更新操作影响的行数。
     */
    int update(String revid, Review review);

    /**
     * 删除一个评论实体。
     *
     * @param revid 要删除的评论的唯一标识符。
     * @return 返回删除操作影响的行数。
     */
    int delete(String revid);

    /**
     * 分页列出评论实体。
     *
     * @param pageNum  页码。
     * @param pageSize 每页显示的评论数量。
     * @return 返回包含指定页码和页面大小的评论实体列表。
     */
    List<Review> list(int pageNum, int pageSize);

    /**
     * 根据唯一标识符获取一个评论实体。
     *
     * @param revid 评论的唯一标识符。
     * @return 返回对应的评论实体。
     */
    Review get(String revid);

    /**
     * 根据产品ID获取相关的评论DTO列表。
     *
     * @param proid 产品的唯一标识符。
     * @return 返回与该产品相关的评论DTO列表。
     */
    List<ReviewDto> getReviewByPro(String proid);
}
